﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace comm_num_tp1
{
    
    public class GpGSV : GpsStream
    {
        /*
        $GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45,75
         
        2 = Nombre de trames GSV avec les données complètes.
        1 = Trame 1 de 2 trames (jusqu'à 3 trames)
        08 = Nombre de satellites visibles (SV).
        01 = N° d'identification du 1er Satellite.
        40 = Elevation en degrés du 1er Satellite.
        083 = Azimuth en degrés du 1er Satellite.
        46 = Force du signal du 1er Satellite (Plus grand=meilleur)
        (Cette séquence se répète jusqu'à 4 satellites par trames.
        On peut donc avoir jusqu'à 3 trames GSV dans une transmision (12
        satellites).)
        75 = cheksum
        non représentés les CR et LF
        */

        #region private variables
        private SateliteInfoList _mySatelites = new SateliteInfoList();
        private int _streamno;
        private int _visiblesat;
        #endregion

        #region accessors
        public string StreamCompletStream { get; set; }
        public string StreamNo
        {
            get
            {
                return _streamno.ToString();
            }
            set
            {
                Int32.TryParse(value, out _streamno);
            }
        }
        public string StreamVisibleSat
        {
            get
            {
                return _visiblesat.ToString();
            }
            set
            {
                Int32.TryParse(value, out _visiblesat);
            }
        }

        public SateliteInfoList SateliteList
        {
            get
            {
                return _mySatelites;
            }
        }
        public string StreamRawStream { get; set; }
        #endregion

        public override string ToString()
        {
            string myGsv = "";
            myGsv += StreamIden + ',' + StreamCompletStream + ',' + StreamNo + ',' + StreamVisibleSat;
            foreach (SateliteInfo sat in SateliteList)
                myGsv += ',' + sat.ToString();
            return myGsv;
        }
    }
}
